package com.lambert.gingko.watermark.model;

import com.lambert.gingko.watermark.enums.ContentLocation;
import com.lambert.gingko.watermark.enums.Position;
import com.lambert.gingko.watermark.enums.Positions;
import lombok.Data;

import java.awt.*;

/**
 * 水印配置
 * @author lambert
 * @since  2025/08/31
 */
@Data
public class WatermarkConfig {
    /**
     * 水印文字内容
     */
    private String text;

    /**
     * 字体
     */
    private Font font = new Font("SimHei", Font.BOLD, 32);

    /**
     * 颜色
     */
    private Color color = Color.RED;

    /**
     * 透明度 (0.0-1.0)
     */
    private float opacity = 0.5f;
    /**
     * 倾斜角度（单位：度，0-360，默认0不倾斜）
     */
    private double angle = 0.0;
    /**
     * 水印插入的大位置：页眉/页脚/正文
     */
    private ContentLocation contentLocation = ContentLocation.CONTENT;
    /**
     * 水印位置
     */
    private Position position = Positions.BOTTOM_RIGHT;
    /**
     * 位置参数
     */
    private PositionParam positionParam = new PositionParam();

    // 角度校验：确保在0-360度范围内
    public void setAngle(double angle) {
        // 标准化角度（如-30度转为330度）
        this.angle = (angle % 360 + 360) % 360;
    }
}
    